(計実) 第6回課題
<気象データ:年降水量と年平均気温を算出する>
今回の課題は,気象庁の月別気象データから, ある年の年降水量 (12ヶ月積算) と年平均気温 (12ヶ月平均) を, Pythonを使って算出することである.
◆仕様
以下に仕様を示す.
[題名] 年降水量と年平均気温の算出プログラム
[プログラムファイル名] weather.py
[入力] 月別データの1月~12月の月降水量 (月合計) と月平均気温
※学籍番号下3桁÷111の剰余+1
観測年月:2010年1月~12月
※数値のコピー&ペーストは各自工夫すること
ダウンロードは自由だが,数値はinput()で入力する
← csvファイルを使うわけではない
データ:月降水量 (mm) と月平均気温 (℃)
※「テストの準備」で用意するデータの一部であるが,まだ入手していないなら、気象庁の公式サイトから入手すること
入力方法:input()とfor/whileを使い12ヶ月分をキーボードから入力
※入力方法 (Option) :2つのリストkosuiryoとkionを作る
[処理] 降水量の合計値と,気温の平均値を算出
年降水量:12ヶ月の合計を計算し,変数kosui-gokeiに代入
年平均気温:12ヶ月の平均を計算し,変数kion-heikinに代入
[出力] 以下の書式を目標とする
code:出力書式
==============
観測地点番号:999
観測地点:札幌
観測年:2010年
単位:降水量(mm),気温(℃)
--------------------
1月の降水量: 113.6▼ ◀◀ ここから12ヶ月分を入力
1月の平均気温: -3.6▼
2月の降水量: 94.0▼
2月の平均気温: -3.1▼
3月の降水量: 77.8▼
3月の平均気温: 0.6▼
4月の降水量: 56.8▼
4月の平均気温: 7.1▼
5月の降水量: 53.1▼
5月の平均気温: 12.4▼
6月の降水量: 46.8▼
6月の平均気温: 16.7▼
7月の降水量: 81.0▼
7月の平均気温: 20.5▼
8月の降水量: 123.8▼
8月の平均気温: 22.3▼
9月の降水量: 135.2▼
9月の平均気温: 18.1▼
10月の降水量: 108.7▼
10月の平均気温: 11.8▼
11月の降水量: 104.1▼
11月の平均気温: 4.9▼
12月の降水量: 111.7▼
12月の平均気温: -0.9▼
--------------------
年降水量:1106.6 ◀◀ 計算結果を出力
年平均気温:8.9
==============
※文言はそれと分かれば変更してもよい
半角ローマ字や英語も可:
年降水量=annual precipitacion
年平均気温=average annual temperature
"==="などの飾り罫線も含め,他の書式も変更可.
いきなり全体をプログラムするのは困難.パーツ分けをしよう.
◆Aパーツ:合計・平均計算部分:"weather-A.py"
1. 降水量合計値を変数 kosuigokei に直接代入しておく ◀◀ あとで入れ替える
※a = 1 + 2 + 3 + 4 + 5 のような形にすれば直接代入できる
2. 平均気温合計値を 変数kiongokei に直接代入しておく ◀◀ あとで入れ替える
3. "--------------------"を出力
4. 年降水量:kosuigokeiを出力
5. 年平均気温:kiongokeiの年平均を計算して出力
6. "=============="を出力
◆Bパーツ:データ入力・表示部分:"weather-B.py"
1. 降水量合計を 変数kosuigokei とし,初期値0.0を代入
2. 気温合計を 変数kiongokei とし,初期値0.0を代入
3. 12ヶ月分のカウンターとして変数 i を使う.
4. 月降水量をキーボードから入力し,降水量合計に加算
※入力時テキストは「○○月の降水量:」 ◀◀ ○○には月数が入る
5. 月平均気温をキーボードから入力し,気温合計に加算
※入力時テキストは「○○月の平均気温:」 ◀◀ ○○には月数が入る
★可能なら上の代わりに以下のオプションに変えてもよい.
★BパーツオプションII:リスト+for文を使う:"weather-B-II.py"
1. 降水量合計を変数 kosuigokei とし,初期値0.0を代入
2. 気温合計を変数kiongokei とし,初期値0.0を代入
3. 降水量12ヶ月分をリストとして作り,変数 kosui に入力
4. 平均気温12ヶ月分をリストとして作り,変数 kion に入力
5. for文で12ヶ月分の毎月の降水量と平均気温を出力 (表示)
6. さらに毎月の降水量と平均気温を降水量合計および気温合計に加算 (5のループの中で加算するのがよいだろう)
★BパーツオプションIII:リスト+while文を使う:"weather-B-III.py"
オプションIIの手順5. をwhileを使って書く.つまり,
5. while文で12ヶ月分の毎月の降水量と平均気温を出力 (表示)
あとは同じ.
◆Cパーツ:情報提示部分:"weather-C.py"
1. "=============="を出力
2. 観測地点番号を出力
3. 観測地点名を出力
4. 観測年を出力
5. 「単位:降水量(mm),気温(℃)」と出力
6. "--------------------"を出力
★可能なら上の代わりに以下のオプションに変えてもよい.
★CパーツオプションII:"weather-C-II.py"
a. 観測地点番号,観測地点名,観測年を各々変数にする (変数名は自由) .
b. 出力はその変数を使って出力
※こうすることで,値の書き換えがわかりやすくなる
◆D組み立て:"weather.py"
[* ◎組立て:A, B, Cの全部をあわせて1つのプログラムを完成させる.
部分的に欠けていたり,エラーが出る場合でも,〆切までに提出する.
レポートにはA~Dのどこまでできたか,またオプションを選んだ場合はどのオプションかを明示すること.
オプションを選んだ場合,どのパーツのどのオプションかを明示すること.複数も可.
(例:「オプションはB-III,C-II」)
◎記録:
入力状態と出力結果を自PCのターミナルで必ず確認し,記録してReportディレクトリに提出しておく.
※リダイレクションを使う
※うまく行かない場合,最後の出力を記録しておく
◆所感:
プログラムを作成した時の所感を,できるだけ具体的に述べなさい.
短くても構わないが「がんばった」「よかった」「ありがとうございました」等は,ないほうがマシ
【提出方法】
( 1 ) ファイルを Report へコピー
Workディレクトリで作業したファィルの中から,レポートとして提出するファイルを レポートディレクトリ (Report) に保存する.
上記課題では,A, B, Cの3つのパート (weather-A.py~weather-C.py) と完成形 (weather.py) を提示した.
また,B, Cにはオプションでweather-B-II.py, weather-B-III.py, weather-C-II.py も提示した.
この中で,提出できる (評価に耐えうる) と自分で判断したプログラムファイルをすべて,Reportにコピーしなさい.
最後まで完成させたのであれば,weather.py だけでよい.
未完成だがA, B, C個別にはできたのなら,weather-A.py , weather-B.py , weather-C.pyを提出する.
A, Cだけつなぎあわせたのなら,それをweather.pyとして提出する.
★どこが未完成かをプログラムのコメントとして説明すること.
どのファイルを出すかの判断は各人に任せる.
「どうせだめだ」「なんかわからんが出してしまえ」でなく, 判断の理由を自分で明確にもつこと.
manaba提出後は自PCのファイルをいじらないこと.
( 2 ) manabaへのレポート提出
1. 本文冒頭に学籍番号と氏名を明記する.
2. A~Dのどれとどれを提出するのか (またはどういう組み合わせか) を最初に明示する.
提出できる (評価に耐えうる) と自分で判断したプログラムファイルをすべて,です.
3. プログラムファイル名を明示してから,それぞれの中身を貼り付ける.
プログラムのタイトル (ファイル名) を明記すること
プログラムソースの開始と終わりを明確にすること (-----で区切るなど)
4. そのプログラムの実行結果を貼り付ける (プログラムと結果をペアに) .
実行結果の開始と終わりを明確にすること (-----で区切るなど)
プログラムとその結果はペアで提示する
5. プログラム作成における所感を付ける.
※いつもの注意:manabaでのトラブル回避のため,まずはレポート文を自PCのエディタで作成してから提出すること.
提出場所 (1): レポートディレクトリ ( Report )
ファイル名:weather-A.py ~ weather-C.py , weather.py のいずれかまたは全部
提出場所 (2): manaba「計算機実習1 U43Y314」
→ レポート「計算機実習1第6回レポート」
提出期限:7月25日( 火 )13:00
※次回の授業開始ではない(テスト準備のため)
※時間は厳守.manaba の設定により自動的に受付終了する
以上.
2023/7/19